
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileInputStream;
import java.util.Properties;

/**
 *
 * @author Alejandro Figueroa
 */
public class Pantalla extends javax.swing.JFrame {

    // <editor-fold defaultstate="collapsed" desc="Variables">

    private AccesoRemoto server;
    javax.swing.Timer t;
    int cont = 0;

    // </editor-fold>

    // <editor-fold defaultstate="collapsed" desc="Constructor">

    public Pantalla(AccesoRemoto este) {
        
        initComponents();

        Properties props = new Properties();

        try
        {
            props.load(new FileInputStream("tanque.properties"));
            this.Titulo.setText("Tanque "+props.getProperty("numeroPropio"));
            setTitle("Visualizar Tanque "+props.getProperty("numeroPropio"));

        }catch (Exception e)
        {
            e.printStackTrace();
            System.out.println("Error al tratar de acceder al archivos de propiedades o al "
                    + "tratar de imprimir por pantalla");
        }

        server = este;
    }

    // </editor-fold>

    // <editor-fold defaultstate="collapsed" desc="Generated Code">

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        Titulo = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        ver = new javax.swing.JTextArea();
        jSeparator1 = new javax.swing.JSeparator();
        jLabel1 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Ventana de Tanque");

        Titulo.setFont(new java.awt.Font("Verdana", 1, 36)); // NOI18N
        Titulo.setText("Tanque 2");

        ver.setColumns(20);
        ver.setRows(5);
        jScrollPane1.setViewportView(ver);

        jLabel1.setText("Operaciones realizadas en el Tanque.");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 380, Short.MAX_VALUE)
                    .addComponent(jSeparator1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 380, Short.MAX_VALUE)
                    .addComponent(Titulo, javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel1, javax.swing.GroupLayout.Alignment.LEADING))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(Titulo)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 191, Short.MAX_VALUE)
                .addContainerGap())
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    // </editor-fold>

    // <editor-fold defaultstate="collapsed" desc="Metodos Propios">

    /**
     * Accion que se tomara en cuenta a la hora que el tanque este en su maxima
     * capacidad y que se desee quemar el petroleo
     */
    ActionListener quemarGasoil = new ActionListener() {
        public void actionPerformed(ActionEvent e) {

            if (server.getPorcentaje() > 50)
            {
                int capacidadNueva = server.capacidadTanque - (server.capacidadMaxima/100);

                imprimirVista("Capacidad maxima alcanzada, quemando petroleo \na razón de 1% de la capacidad por segundo\n");
                imprimirVista("Quemando "+server.capacidadMaxima/100+"\n");
                imprimirVista("Contenido actual: "+capacidadNueva+"\n\n");
                server.capacidadTanque = capacidadNueva;
            }
            else{
                t.stop();
                server.alarma = false;
            }
        }
    };

    /**
     * Metodo que llevara el determinara el tiempo de la quema de petroleo a
     * demas de iniciar el proceso
     * (Solo sera llamado cuando se quiera quemar petroleo)
     */
    public void DistribuidorElQuemaito()
    {
        t = new javax.swing.Timer(2000, quemarGasoil);
        t.start();
    }

    /**
     * Metodo encargado de imprimir por la interfaz lo que se va haciendo
     * @param mensaje: lo que se desea escribir en la interfaz
     */
    public void imprimirVista(String mensaje){

        this.ver.append(mensaje);
    }

    // </editor-fold>

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JLabel Titulo;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JSeparator jSeparator1;
    private javax.swing.JTextArea ver;
    // End of variables declaration//GEN-END:variables

}
